text:
By Julie Huss
---- — Auburn resident Wendy Thomas lost a little piece of her childhood last week with the news that Rex Trailer, the popular cowboy star of TV's "Boomtown," died Jan. 9.
"I used to get up on Saturday morning and ride on the arm of the rocking chair like it was a horse," Thomas said, "while singing, 'Boom, Boom, Boomtown!'"
So, too, did thousands of other area residents, who grew up watching the show on Boston station WBZ-TV from 1956 to 1974.
Trailer, 84, died at his home in Florida.
"Boomtown" entertained millions of children for three hours every Saturday and Sunday.
Maureen Heard of Derry was one of those children.
"I always watched the show," she said last week. "I always thought the kids that got on the show were the luckiest in the whole world. It brings back sweet memories of a simpler time."
There were more than 1,000 episodes of the show and more than 250,000 children appeared on it.
Londonderry High School musical director Andy Soucy got close enough to see the set.
Soucy, who grew up in Nashua, sang on "Community Auditions" at WBZ.
"We went to WBZ studios for the broadcast and, at one point, saw the 'Boomtown' set in another room aside from where we were performing," Soucy said. "I know it's silly, but I became really excited and I found myself gazing at all the different items. So I guess looking back, he touched a lot of us."
Long after the show went off the air, Trailer continued to entertain local fans.
He appeared in several Labor Day parades in Derry and entertained the crowd at Derryfest in 2005.
Barb Ellingwood led the Derryfest Committee for many years. She said Trailer made many people happy that day in MacGregor Park.
The TV icon invited adults who had watched him as a child to share the stage with him.
"He was a really wonderful and delightful man," Ellingwood said.
Trailer joined rock-and-roll legend Chubby Checker at MaryAnn's diner in Derry in 2008.
Diner owner Bill Andreoli yesterday remembered how excited people were to see him there.
Andreoli, who grew up in Lawrence, was an avid fan.
"I watched him every day when I was a kid," he said. "He was a big part of my life."
MaryAnn's waitress Susan Ingalls grew up in Somerville and was one of the lucky ones who actually appeared on Trailer's show.
"It was exciting to go on there," she said. "I got to go on a lot."
Trailer's popularity extended throughout Southern New Hampshire and the Merrimack Valley.
In 2007, he helped dedicate a monument in Methuen recognizing the horse's role in early firefighting. Methuen Mayor Bill Manzi remembered the event on his blog last week.
"He was every bit of the gentleman that we had all come to know from the show," Manzi wrote.
A year later, Trailer made an appearance with Andover native Jay Leno at Lowell's Memorial Auditorium. Leno reportedly was a longtime fan.
In later years, Trailer taught on-camera performance at Emerson College and had his own production company.
He was inducted into the Massachusetts Broadcasters Hall of Fame in 2007.
Trailer made numerous appearances on the Muscular Dystrophy Association telethons hosted by his friend Jerry Lewis.
Derry resident Joe Versackas grew up in Cambridge.
He and his five brothers all wanted to be cowboys when they were young, thanks to Trailer.
"We always watched," he said last week. "They said he was a really nice guy."


text:
|Women's Tennis » Roster
|» News » Schedule » Roster » Coaches » Statistics » Archive
2009-10 Women's Tennis
|Les Bordes, France
|Tyler Junior College
Senior: Led the Eagles to their best season since joining the Atlantic Sun Conference...Finished the season with a 12-6 overall record, playing at four different positions...Primarily played at the number one position, where she was 5-5 in conference matches...Also recorded a 9-8 doubles record, 6-4 in A-Sun matches.
Junior: Went 12-8 during the dual match season at the number one singles position...Compiled a 5-5 A-Sun singles record...Had wins over #126 UCF's Elvira Serrot, #106 Stetson's Valentina Galbarini, #123 UNF's Aline Berkenbrock, and #173 Bucknell University's Tania Varela...Went 4-16 in doubles...Was named Atlantic Sun Second Team All Conference in singles at the #1 position…Received Atlantic Sun All-Academic honors.
Previous Institution: Attended Tyler Junior College in Texas...Was a part of Junior College National Championship winning team in 2007, and Junior College National Championship runner-up team in 2008.
Personal: Daughter of Jean-Claude and Isabelle Villemond...Majoring in Marketing...Favorite athlete is Maria Sharapova...Favorite sports movie is Wimbledon...One person Priscillia would like to meet is Kimora Lee Simmons.

subset: commoncrawl


text:
More South Georgia help is headed to hurricane victims in the Northeast, and more is expected to be needed soon.
Wednesday morning a semi-truck load of bleach left the Second Harvest of South Georgia food bank center in Douglas, headed to the relief effort.
Already the food banks of South Georgia have shipped 7 truck loads of water to the hurricane battered areas. Now, A winter storm is causing more problems.
"The cold weather is going to have a huge effect on the overall relief effort" said Second Harvest of South Georgia CEO Franklin Richards. " I mean you start getting into snow, and families are really suffering because they have no electricity. No way to prepare food or anything like that to. So they are going to be displaced for quite a while."
Food bank officials say many generous corporate sponsors including ConAgra and Kraft have made large donations to them, to distribute to hurricane victims.
Copyright 2012 WALB. All rights reserved.
P.O. Box 3130
Albany, GA 31706
(229) 446-1010
FCC Public File
(229) 446-4005
EEO Report
Closed Captioning


text:
Today we're going to talk about wordpress themes, in particular finding the best wp theme for your new site. While many people find this piece the most frustrating, it's one of my favorite pieces of putting together a new site. I like it because there's no right or wrong, and I get to express who I am and what I want my site to be through this theme.
Before your theme hunting it's wise to have a few things decided ahead of time ~ just to cut down on the length of time you spend doing this, because believe me, it can be an easy task to get lost in, there are so many choices and so many gorgeous themes out there!
1. What do you want the theme to say?
Your theme speaks for your site, what do you want it to say?
Clean, neat, tidy?
Show images related to your topic?
Bright and colorful?
Neutral and tame?
You know what they say about first impressions, and this couldn't be MORE true than when a reader comes to your blog. You have about, Oh I don't know, 2 seconds, maybe, if you're lucky to make a good impression. The color, look and feel of your blog will be a lot of your first impression.
I suggest you keep your site as clean as possible. You don't want a bunch of clutter, buttons, widgets etc in your sidebar.
You also want your sidebars clean so your content is what becomes the focus. It's the point of your site. You want people to be able to focus on the content without being distracted not only by your sidebars, but the theme itself.
How many sidebars do you want? You can get themes with a wide range of sidebar configuration, you can get 1 sidebar, 2 on the same side, one on each side of your content, and now there are even themes with 3 sidebars ~ a large one at the top of the page with two narrower ones below (like this site).
There's no right or wrong, but here's some of my thoughts on sidebars.
1. I'd say keep your sidebars on the same side. It gets a little smushed and hard to focus on your content with stuff going on on both sides of it.
2. I love the 3 column themes simply because you can easily put a larger opt in box at the top and it is prominent and clear that you want people to sign up. (which is super important).
So before you go theme hunting make a decision on the number and configuration of sidebars you want. You can easily search through theme directories by number of sidebars which will lessen the time and number of themes you need to look through.
How do people get around your site? Are you going to have categories in the sidebar? Are your categories going to be at the top of the page? Are your pages going to show up at the top of the page.
When I first put this site up I had a cute theme on here ~ I really liked the theme, however, the pages showed up in this random area in the header area and it just was not a good configuration for the pages. I used this theme for quite a while, but at some point I decided this site needed to look more professional ~ which is when I switched to another theme, and then a bit later found the theme it has now, which is Vigilance. (if you click the free trial link you can still get this one for free)
It was navigation that really got me hung up for my new site. I wanted to have my categories at the top, in the nav bar. But I also wanted them to be nested. So I would have a main topic, then any smaller topic in that category would show up in a drop down menu people could click on. It looks really clean and neat. It helps people find exactly what they're looking for without searching through tons of semi related posts. It also lets me talk about a bunch of different things, and only show 3 or 4 main categories. Which I really liked.
Well I'll tell you. I had a hell of a time finding a theme that would do that. I found a bunch of themes that SAID they would do that. I installed a bunch of themes that said they would do that and none of them did. I knew there were themes out there that did it, but I couldn't find them.
It was then that I remembered that Rosiland Gardner's sites were like that in the Super Affiliate Handbook. So I went back to her sites and looked to see which theme she was using. Unfortunately it was a paid theme. I went back to the drawing board looking for free themes. Finally, in such disgust and frustration I just went and bought the Lifestyle theme. It was everything I wanted in a theme. It also provides tech support in the forums, so I could get some help customizing it I needed it.They have many themes other than the lifestyle, but it was what I was looking for.
This is the first time I've ever paid for a theme. But I have to say it was well worth the money. I am now going through and adding this theme to some of my uglier niche sites. Once you have the theme you can use it on as many sites as you want. I was also amazed looking through the Studiopress gallery just how different the same theme could look. I didn't change much on the theme, a little bit of the color and the header and that's it. It was pretty simple and well explained in the forum tutorials.
If you decide you want what the StudioPress themes offer I will do a $10 theme install (over half off the regular theme install price as a bonus for buying through my link) and some basic customization for you, if you need it.
There's been a change in the way the lifestyle theme works. They have now made it a "child" theme for their "Genesis" theme framework. While it sounds really complicated it's not, you just have to upload both themes to your site for them to work. Now if you want the lifestyle theme you will have to buy the child theme as well as the Genesis theme. (you only have to buy Genesis once. If you find other child themes by studiopress that you like you will only have to buy a new child theme, not Genesis).
They have also changed the color palette of the Lifestyle theme to a bright turquoise, which I'm not super fond of.
This morning while I was looking around the net I came across a theme membership site called "Elegant Themes" this site has a LOT of different themes, and you get access to all the themes with your annual membership fee of under $20. (you still can use all the themes you've downloaded if you cancel your membership after the first year. You just won't have access to support and any new themes) I picked them up today and I'm loving them.
The themes are very clean, they have a lot of different kinds of themes, some regular blog type themes, some magazine themes and some combo type themes. Many of the themes have nested categories, which is the one thing I really loved about the Lifestyle theme.
What makes these themes super great (other than the very low price) is they are SUPER easy to customize. Each theme has an "epanel" in your wordpress dashboard where you can click/unclick and make changes without every touching the code. VERY COOL. You can even change colors within the theme (like links, headers etc).
So all in all this is a super great deal. I had the classic lifestyle theme on my new site, (Everyday Life and Balance) but changed it over to one of the elegant themes this morning. (cherrytruffle). I had a hard time picking which theme I wanted to use lol. I really like the one I chose but miss the featured posts slideshow at the top ~ but I think I can put it in with a plugin, so I'm going to look into that. I am going to be switching some of my other niche sites over to these new themes as well.
While you're looking for a theme keep in mind that you can usually change the header pretty easily. There are some things that are harder to change in a theme, like the font, and things like that, but background color and the header are usually pretty simple to change if you love the theme but hate the color.
Blog vs. Magazine themes:
A regular blog theme has sidebars, and one column of content. New content shows up at the top of the theme and it just goes down.
Magazine themes are heavy on images. There are usually multiple columns on the page offering information about different categories or topics. I feel like magazine themes can sometimes be very overwhelming ~ because there's so much going on you don't know where to start. However, there are some much more simple magazine themes now, including the lifestyle theme. If you think you will be using a lot of images ~ or your topic lends itself well to images you might want to think about a magazine theme. You will be able to show many images on the front page ~ which can pull people into your content.
Just think when you look at your theme how it will play to your reader. Will they be able to find what you want them to see? Will they be confused? Will they be able to navigate with ease through the homepage to the actual content? Most magazine themes only have a snippet of content for each post on the homepage ~ people will have to click through to see the post.
While I've never been a huge fan of magazine themes, they are growing on me. If you have a site that has 3 or 4 main categories ~ like a health site with nutrition, supplements, exercise as the main topics a magazine theme could be fantastic. Especially if you have nesting categories. You can set up each of those categories as a column on the front page and people will be able to navigate quite easily through the content.
How to find the best wp theme for your site
This can take some time, so set aside an hour or so to go theme hunting. Think of it as an adventure and have fun with it. There's a couple ways to start your search.
1. Google what you want.
If you know you want a blue 3 column theme then go ahead and google that ~ it will bring you some options you might like.
2. Theme directories.
My favorite way though, is to go to a theme directory. There are so many of them online now. You can google wp theme directory ~ or you can check out a couple of my favorites.
Rock Kitty ~ unique themes on many topics.
Free theme forum ~ this isn't exactly a directory, but a forum with tons and tons of themes.
3. WordPress dashboard.
You can also now look for themes through your dashboard in wordpress. Just go to the add new theme area in your dashboard and you can search and upload from there. I haven't used this method so I'm not sure what kind of themes the will bring you when you search from there, but it's an option.
So once you've chosen your theme you can upload and activate it. You'll find the instructions to do that in the top half of this post on installing a wp theme.The second half of that post is about plugins which we're going to work on next week ~ but if you want to get a head start, you can start on that. I've got a couple extra plugins I'm going to talk about though.
I'm going to figure out the mclinky thing today and add it to the challenge post for the week. So when you get this all done (which means you have accomplished the challenge! YAY) go back and comment on the weekly challenge post so you'll get your new site included in the linky. I can't wait to check out which themes you guys choose!!


text:
The only way to improve anything is to practice it constantly. With writing, you also need to read as much as possible in order to absorb how writers use words.
You are most welcome to post your writing in the Editing and Writing forum for comment.
- Home
- Members
- Testing
- Reference
- Articles
- Forums
- Resources
- For Teachers
- eBooks


text:
For Wherever Life Takes You
Learn more about our free apps
and mobile websites.
We have more than a dozen Madrid hotels in locations all over the city. This includes city centre hotels, airport hotels and locations outside the city. A business hub, tourist centre and bustling city, there's a host of reasons you might be paying a visit to this Spanish city.
Football fans probably already consider Madrid as something of a Mecca. Home to a number of football clubs, most notably including Real Madrid and Atletico Madrid, if you can catch a match, you definitely should. The atmosphere of Real Madrid's infamous stadium, the Bernebeu, is phenomenal and shouldn't be missed.
But if you'd rather spend the day indulging in designer shopping than cheering on a football team, you're equally as spoilt here. The Salamanca District has a number of streets lined with boutiques and designer shops. On the other hand, if you'd rather hunt out a bargain than splash your cash on designer labels, 'El Rastro' is a flea market held in the city each Sunday and you can barter until your heart's content there.
No matter how long you're in the city for, you'll definitely want to stroll around. Our central Madrid hotels are close to a number of plazas and streets suited to an afternoon stroll. Visit the Paseo del Prado, Plaza de Oriente and the Alcala Gate.
If you have time, then do tour some of the city's 40 or so museums. Highlights include Sorolla Museum, Prado Museum and the Museo Naval.
There's a high-speed rail network connecting Madrid with Barcelona. In the city itself, there's a well-connected bus network and metro system. You can fly direct into Madrid from a number of European cities, including Edinburgh, Liverpool and London in the UK. So pack your bags and check in to one of our dozen or so Madrid hotels!
+ View More - View Less
To book more than 9 rooms for one stay, please call 1-800-MEETING (in United States, Mexico and Canada), contact a Global Sales Office or submit a request for proposal.


text: If you were a Jew living during the Spanish Inquisition, what would you have done? Would you have converted to Catholicism to try and save your life? Would you have tried to escape, knowing the risks involved? Would it have been more important to convert and live, or to not convert and possibly die? Explain your answer fully in at least one page (double-spaced) and use examples that explain your choice.


text:
We do not help with homework, but I'll give you one little hint. Categories and classifications are synonymous. Just look at the list and decide which ones have similarities to others. Those that share a similarity form a category.
- Home
- Members
- Testing
- Reference
- Articles
- Forums
- Resources
- For Teachers
- eBooks


text:
Otago rail trail
摄影师 Stuart Searle
Loading ...
全景摄影师 Stuart Searle 日期和时间 12:47, 12/01/2010 - Views
Otago rail trail
世界 > Pacific Ocean Islands > Polynesia > New Zealand
The Otago Rail Trail is a 100km disused railway that has been converted into a cycleway. It runs between Clyde and Middlemarch, across Cental Otago, New Zealand.
This panorama was taken close to Omakau, a small town on the rail trail.
Photographer's Notes:The old settlement at Lindis pass is now a Department of Conservation camping ar...
This image was captured on a late spring day on the way to Wanaka from Queenstown, we made the obliga...
Shot across Roy's Bay towards the township on Wanaka.
Roys Peak is a 1578 metre high mount that overlooks Lake Wanaka on the South Island of New Zealand.
Forever has always existed.
In the mythology of Oceanic peoples, it's been there along with Darkness and the Sea.
The Earth came from the efforts of Old Spider, who soared over the endless sea and found a giant clam. She opened it and crawled inside, finding a snail there to share the space with her. She set the snail in the west and made it into the Moon to shed some light into the darkness. Together they raised up the top of the clam shell to make the sky, pushing it until it was wide open.
Then they pushed the bottom half of the clam shell in the other direction to make the ground. The earth was called Papa and the sky Ranga. These are the two first beings who created all the flowers, plants, trees and animals on the islands, and fish in the sea.
They celebrated all their open space by making as many beautiful creatures as they could imagine, but they still remained separated by the work of the original Old Spider. Each night, Ranga weeps for his beloved Papa earth, and this is where the morning dew comes from.
Polynesia means "many islands" and when you see these pictures, you will want to visit all of them. To make it simple, the islands sit in a triangle described by connecting Hawaii, New Zealand and Easter Island.
There are over a thousand of these islands of surfer's paradise in the central and south Pacific Ocean. It's stunning. Look at the color of the water here! And the sunset... these speak for themselves. Could you be happy in this little house? How about some reef diving inside a lagoon?
Put this one in full screen and don't come back. Love, 360.
Text by Steve Smith.


text:
In Memoriam: Robert Emerson FLORER, M.D. 1916 ~ 2010
Robert was born in Louisville, Kentucky to Reverend William and Ada Florer. He earned his own way through college and medical school by working an assortment of odd jobs, including Fuller Brush salesman, delivering clean clothes, and orderly. Robert graduated in Medicine from the University of Louisville in 1941.
He came to Seattle to begin his surgical practice, initially on First Hill, working at several hospitals for many years. He then moved his practice to West Seattle and was active in establishing the West Seattle Hospital, of which he was Chief of Surgery for many years.
He belonged to several professional organizations including the West Seattle Rotary Club and the Seattle Surgical Society, and, enjoyed being a member of the Seattle Tennis Club. He loved his family, his garden, tennis, boating, reading, walking – most of all, he loved his dear wife Nancy.
Nancy and Bob are survived by son William, daughters Lesley and Jan, and granddaughter Avery.
This is definitely so amazing
This is definitely so amazing how long he lived. This is definitely such a very long life here. He will be missed so much here. Air conditioner Toronto
http://www.newmichaelkorspurses.com/ Michael Kors Purses
http://www.mk-mmichaelkorsoutlet.com/ Michael Kors Outlet
http://www.guccishoesoutletfactory.com/ Gucci Shoes Outlet
http://www.northfacejacketsoutletonline.net/ north face outlet
http://www.monsterobeats.com/ monster beats outlet
http://www.usaxcoachfactoryoutlet.net/ Coach Factory Outlet
http://www.coach-storeonline2013.com/ Coach Store Online
http://www.coachisoutlet.com/ Coach Outlet
http://www.usfactoies.com/ Coach Factory Outlet Online
http://www.bagscoupon2013.com/ shop.coachfactory.com
http://www.uswcoay.com/ Coach Outlet Online
http://www.bagsoutletfans.com/ Coach Factory Online
http://www.buynewbags2013.com/ coachfactory.com/shop
http://www.coachoutletonlinusa.com/ Coach Outlet USA
http://www.coachsoutletonline-usa.com/ coach outlet usa coach outlet online
http://www.ourcoachoutletonline.com/ coach outlet online usa coach outlet
http://www.newmichaelkorspurse.com/ michael kors purses outlet
http://www.mk-michaelkoroutlet.com/ michael kors outlet online
http://www.guccishoesoutletsfactory.com/ gucci shoes uk
http://www.northfaceoutletonlines.net/ north face outlet online
http://www.monsteroheadphone.com/ monster headphones outlet
http://www.coachstoresonline2013.com/ coach outlet online
http://coachsoutletonline.webs.com/ coach outlet online
http://coachsfactoryoutletonline.webs.com/ coach factory outlet
http://coachfactoryshop.webs.com/ coachfactory.com/shop shop.coachfactory.com
http://michaelkorssale.tumblr.com/ michael kors outlet usa michael kors factory
Coach Outlet Online
I've boughtCoach Outlet Onlinethe generation and syndication regarding PrivateCoach Factory Outletcoach Coupons which will allow good rebate to yourCoach Factory Onlinefortunate consumer. You can actually choose a cheaperCoach Outlet Onlineproduct which has a travelling bag which may Coach Outlet Store glimpse nearly the same as any Coach ladiesCoach Outlet Store Online handbag. The initial different to this procedureCoach Outletare the Prada Basic designer purse line. beneficialCoach Factory Onlinelook-alike when you find yourself promised a genuineCoach Factory Outletinstructor? Women appreciate the chance to invest inCoach OutletPrivate coach footwear, Mentor dated hounds or Coach Factory Outletmaybe Coach accessories, in particular in the Coach Online OutletIt"??ohydrates the most wonderful morning withCoach Factory Outlet Online me which i will never forget. The things theyCoach Outlet Store Onlinesay you will need to match a carrier usingCoach Outlet Onlinethe gown first think that which colorationCoach Outleta person generally wear then pick the handbagCoach Outletof their color. Private coach baggage are generallyCoach Outletswiftly generating their particular placeCoach Outlet Storesamong current market because of feminine glimpseCoach Outletprogresses easily.
http://www.guccishoesoutlettfactory.net/ gucci bags outlet gucci shoes outlet
http://www.northfaceioutletonline.net/ north face outlet online north face outlet
http://www.monsteriheadphones.com/ monster headphones outlet monster beats outlet
http://www.mkfactoryoutlet.com/ michael kors outlet michael kors purses
http://www.cofactoryonline.com/ coach factory online coach factory outlet
http://www.coshopfactory.com/ shop.coachfactory.com coach outlet online usa
http://www.mcoachoutlet.com/ coach outlet online coach outlet usa
http://www.cmichaelkorsoutlet.com/ michael kors outlet micheal kors usa
http://www.mk-michaelkoroutlett.net/ michael kors usa michael kors outlet
http://www.shopcoachbagsfactory.com/ shop.coachfactory.com coach outlet online
If there is an afterlife, I
If there is an afterlife, I am willing to still do your next life a woman,Michael Kors Outlet, still
waiting for you in the way you must go through, perhaps,Air Max Shoes, you already do not recognize
who I am,Coach Outlet USA, but I do not mind,http://www.guccishoesoutletxfactory.com/, surely you must remember Chu Xiangshi when,http://www.gucci-lvshoesfactory.com/, Do you wear a piece of moist in my chest carved white jade,http://www.l-vusashop.com/, because that is the only keepsake each other Love life. Musical,shop.coachfactory.com, whether remember that standing on the shore of the lake standing near the water,http://www.northfaceuoutletonline.net/, sentimental woman? Also in the evening breeze blowing slowly
moonlit night, you walk in the West bridge,Gucci Shoes Outlet, far heard a woman crying
softly,http://www.monsteriheadphones.net/, you Following the sound,http://www.cvshopfactory.com/, I saw my arm the skirt slowly toward the center of the water,http://www.zxcoachoutlet.com/, that shocking scene,Monster Headphones Outlet, desperate I picked up from the icy water that moment,http://www.mkoutletmarts.com/, as my eyes flashed a trace of moving and warm,Louis Vuitton Outlet, you blame and pity look savor,MCM Handbags
Outlet, perhaps at the moment should not leave,http://www.mcmworldwidely.com/, it is the
arrangement of God I met you at the edge of life and death on the occasion,North Face Jackets
Outlet, then on, you will become my life who care most crazy to keep your commitment to a life you once missed appointments bitten red lips,Coach Outlet Online, I do not know what makes a woman like this will never be completely delivered,http://www.airmaxshoesfactory.com/, Xu next life I still do your woman.
When you are intoxicated
When you are intoxicated autumn beauty,http://www.guccishoesofactory.com/, but also about sentimental,North Jackets Outlet, sentimental naked after harvest, fruit shuo shuo is the desire to winter,Coach Factory Outlet, just like the fall of this year,http://www.northefaceoutletonline.net/, I have yet to enjoy the end of this beautiful autumn,Coach Outlet, it will be winter seize the limelight,Ralph Outlet Online, I wanted to collect some specimens do akiba,Michael Kors USA, who knows han xue,Coach Outlet Online, yet withered leaves no bitter froze to death, only that the previous autumn had been dry it,http://www.laurenpoloralph.com/, nature is really cruel,Louis Vuitton Outlet, you surprise ah Time really made me panic,Louis Vuitton Outlet Online, I'm afraid fall too fast,Michael Kors Outlet, a grasping hand is futile,North Face Jackets Outlet, and today I can do,http://www.mmonsterheadphones.net/, only to redouble their efforts,Coach Factory Store, doubling to learn,Gucci Outlet Online, to realize the dream,MCM Outlet Online, can not allow ourselves to have a non harvest life,Beats By Dre Pro, life is only a fall,Michael Kors Outlet Online, let it fall some more colorful,Coach Bags Factory, full of fruit to make life without regret.


text:
where the vector of optimization variables, is the nonlinear scalar objective function, (where ) are the nonlinear constraints, and and are the upper and lower bounds on the variables. The current algorithms in MOOCHO are well suited to solving optimization problems with massive numbers of unknown variables and equations but few so-called degrees of optimization freedom (i.e. the degrees of freedom = the number of variables minus the number of equality constraints = ). Various line-search based globalization methods are available, including exact penalty functions and a form of the filter method. Many of the algorithms in MOOCHO are provably locally and globally convergent for a wide class of problems in theory but in practice the behavior and the performance of the algorithms varies greatly from problem to problem.
MOOCHO was initially developed to solve general sparse optimization problems where there is no clear distinction between state variables and optimization parameters. For these types of problems a serial sparse direct solver must be used (i.e. MA28) to find a square basis that is needed for the variable reduction decompositions that are current supported.
More recently, MOOCHO has been interfaced through
Thyra and the
Thyra::ModelEvaluator interface to address very large-scale, massively parallel, simulation-constrained optimization problems that take the form:
where are the "dependent" state variables, are the "independent" optimization parameters and are the discrete nonlinear state simulation equations. Here the state Jacobian must be square and nonsingular and the partitioning of into state variables and optimization variables must be known a priori and this partitioning can not change during a solve. Warning, the
Thyra::ModelEvaluator interface uses a overlapping and inconsistent set set of names for the variables and the problem functions than the names used by MOOCHO. All of the functionality needed for MOOCHO to solve a simulation-constrained optimization problem can be specified through sub-classing the
Thyra::ModelEvaluator interface, and related
Thyra interfaces. Epetra-based applications can instead implement the
EpetraExt::ModelEvaluator interface and never need to work with Thyra directly except in trivial and transparent ways.
For simulation-constrained optimization problems, MOOCHO can utilize the full power of the massively parallel iterative linear solvers and preconditioners available in Trilinos through Thyra through the
Stratimikos package by just flipping a few switches in a parameter list. These include all of the direct solves in Amesos, the preconditioners in Ifpack and ML, and the iterative Krylov solvers in AztecOO and Belos (Belos is not being released but is available in the development version of Trilinos). For small to moderate numbers of optimization parameters, the only bottleneck to parallel scalability is the linear solver used to solve linear systems involving the state Jacobian . The reduced-space SQP algorithms in MOOCHO itself achieve extremely good parallel scalability. The parallel scalability of the linear solvers is controlled by the simulation application and the Trilinos linear solvers and preconditioners themselves. Typically, the parallel scalability of the linear solve is limited by the preconditioner as the problem is partitioned to more and more processes.
MOOCHO also includes a minimally invasive mode for reduced-space SQP where the simulator application only needs to compute the objective and constraint functions and and solve only forward linear systems involving . All other derivatives can be approximated with directional finite differences but any exact derivatives that can be computed by the application are happily accepted and fully utilized by MOOCHO through the
Thyra::ModelEvaluator interface.
Below, we briefly describe Configuring, Building, and Installing MOOCHO, Running MOOCHO to Solve Optimization Problems, and accessing the Installed Optimization Examples.
Quickstart Outline
Here we describe the configuration, build, and installation process for a directory structure that looks like:
$TRILINOS_BASE_DIR | |-- Trilinos | -- BUILDS | -- DEBUG
$TRILINOS_BASE_DIR is some base directory such as
TRILINOS_BASE_DIR=$HOME/Trilinos.base. However, in general, the build directory (show as
$TRILINOS_BASE_DIR/BUILDS/DEBUG above) can be any directory you want but should not be the same as the base directory for Trilinos. In the most general case, we will assume that
$TRILINOS_BUILD_DIR is the base build directory; in this section, we assume that
TRILINOS_BUILD_DIR=$TRILINOS_BASE_DIR/BUILDS/DEBUG. The Trilinos Users Guide might still recommend that you create the build directory from within the main Trilinos source directory tree (i.e.
Trilinos/DEBUG) but we recommend against this practice and the build system supports the more general case described here just as well.
Here are the steps needed to configure, build, and install MOOCHO along with the rest of Trilinos:
Once you have created the base directory
$TRILINOS_BASE_DIR you need to get a copy of the Trilinos source.
If you have CVS access you can obtain the version of the day through the main development trunk or can check out a specific tagged release. For example, to obtain the version of the day you would perform:
cd $TRILINOS_BASE_DIR cvs -d :ext:firstname.lastname@example.com:/space/CVS co Trilinos
userid is your user ID on the CVS server. For further details on working with CVS access to Trilinos, see the Trilinos Developers Guide.
If you do not have CVS access you can obtain a tar ball for a release of Trilinos from the Trilinos Releases Download Page. Once you have the tar ball, you can expand it into the directory
$TRILINOS_BASE_DIR as follows:
cd $TRILINOS_BASE_DIR tar -xzvf ~/trilnos-7.0.x.tar.gz
7.0.x is some minor release number of Trilinos; hopefully the most current version. Note that when building form a tarball, the base directly is likely to be called something like
trilinos-7.0.x instead of just the base directory name
Trilinos; in this document the base directory name
Trilinos as is assumed.
After you have a copy of the Trilinos source tree in
$TRILINOS_BASE_DIR/Trilinos, you need to create the base build directory. Here, we assume that you will create the build directory
$TRILINOS_BASE_DIR/BUILDS/DEBUG as follows:
cd $TRILINOS_BASE_DIR mkdir BUILDS mkdir BUILDS/DEBUG
Once you have the Trilinos source code and have created a base build directory, you need to create a configuration script for Trilinos. By far the hardest part of building and installing Trilinos is figuring out how to write the configuration script that will work for the system that you are on and includes the packages and extra options that you need. The best place to find example configure scripts that at least have a chance of being correct on specific systems is to look at Trilinos test harness scripts in the directory:
Older scripts that have worked on a wider variety of systems in the past for different sets of packages can be found in the directory:
Warning! The scripts in
Trilinos/sampleScripts are likely to be currently broken for even the same systems for which they where developed. These scripts really only provide ideas for different combinations of options to try to get a configure script to work on your system.
Below is perhaps one of the simplest configure scripts that might get Trilinos to build on a GCC/Linux based platform (without MPI support) with MOOCHO support correctly and with enough capability to be useful for initial development purposes:
$TRILINOS_BASE_DIR/Trilinos/configure \ --prefix=$TRILINOS_INSTALL_DIR \ --with-gnumake \ --enable-export-makefiles \ --with-cflags="-g -O0 -ansi -Wall" \ --with-cxxflags="-g -O0 -ansi -Wall -pedantic" \ --enable-teuchos-extended --enable-teuchos-debug --enable-teuchos-abc \ --enable-thyra \ --enable-epetraext \ --enable-stratimikos \ --enable-moocho
A word of caution is in order about the above simple configure script; The above script assumes that certain packages will be turned on by default (such as Epetra, Amesos, AztecOO, Ifpack, and ML) and that other packages will be turned on automatically by the presence of the given enables. While this should work correctly for many different possible combinations of enables and disables, there are many configurations that will not work just due to faults in logic and inadequate testing of all of the possible options. When in doubt, be explicit about what you enable and be weary about selectively disabling certain packages and subpackages. The safest strategy is to copy the enables and disables that are used in one of the invoke configure scripts from the test harness and then remove the enables for the optional third-partly libraries.
Below is an example of a more complicated configure script that might be used to configure Trilinos with MOOCHO support and a Linux system with gcc with more capabilities based on some third-party libraries (but the script might not actually work on any actual computer on Earth):
$TRILINOS_BASE_DIR/Trilinos/configure \ --prefix=$TRILINOS_INSTALL_DIR \ --with-install="/usr/bin/install -p" \ --with-gnumake \ --enable-export-makefiles \ --with-cflags="-g -O0 -ansi -Wall" \ --with-cxxflags="-g -O0 -ansi -Wall -ftrapv -pedantic -Wconversion" \ --enable-mpi --with-mpi-compilers \ --with-incdirs="-I${HOME}/include" \ --with-ldflags="-L${HOME}/lib/LINUX_MPI" \ --with-libs="-ldscpack -lumfpack -lamd -lparmetis-3.1 -lmetis-4.0 -lskit" \ --with-blas=-lblas \ --with-lapack=-lapack \ --with-flibs="-lg2c" \ --disable-default-packages \ --enable-teuchos --enable-teuchos-extended --disable-teuchos-complex \ --enable-teuchos-abc --enable-teuchos-debug \ --enable-thyra \ --enable-epetra \ --enable-triutils \ --enable-epetraext \ --enable-amesos --enable-amesos-umfpack --enable-amesos-dscpack \ --enable-aztecoo \ --enable-ifpack --enable-ifpack-metis --enable-ifpack-sparskit \ --enable-ml --with-ml_metis --with-ml_parmetis3x \ --enable-stratimikos \ --enable-moocho
The above script is almost completely platform dependent in most cases, except for everything below
--disable-default-packages for enable options for individual packages. A few points about the above configure script are worth mentioning. First, some of the package enable options such as
--enable-epetra should be unnecessary once other options such as
--enable-epetraext are included but to be safe it is a good idea to be explicit about what packages to build in case the default built-in top-level configure logic does not handle the dependencies correctly. Second, it is a good idea to include the options
--enable-teuchos-debug and
--enable-teuchos-abc when you first start working with Trilinos to help catch coding errors on your part (and perhaps on the part of Trilinos developers). Third, the above script shows enabled support for several third-party libraries such as UMFPACK, DSCPACK, SparseKit, and Metis. You are responsible for installing these third-party libraries yourself if you want the extra capabilities that they enable. Otherwise, to get started, a simpler script, such as shown above, can be used to get started with Trilinos/MOOCHO.
As a final step, you can copy the contents of the configure invocation command (examples shown above) into a script called
do-configure and make the script executable which is assumed below.
Once you have a configure script, you can try to configure and build Trilinos as follows:
cd $TRILINOS_BUILD_DIR ./do-configure make make install
If a problem does occur, it usually occurs during configuration. Often trial and error is required to get the configuration to complete successfully.
Once the Trilinos build completes (which can take hours on a slower machine if a lot of packages are enabled) you should test Trilinos using something like:
make runtest-mpi TRILINOS_MPI_GO="\"mpirun -np \""
If MPI is not enabled, you run run the serial test suite as:
make runtest-serial
Once you feel confident that the build has completed correctly, you can install MOOCHO along with the test of Trilinos as follows:
make install
If everything goes smoothly, then Trilinos will be installed with the following directory structure:
$TRILINOS_INSTALL_DIR | |-- examples | |-- include | |-- libs | -- tools
Once the install competes, you can move on to building and running the installed MOOCHO examples as described in the next section.
--enable-export-makefiles is included, a set of examples are installed in the directory specified by
--prefix=$TRILINOS_INSTALL_DIR and the directory structure will look something like:
$TRILINOS_INSTALL_DIR | |-- examples | | | -- moocho | | | |-- NLPWBCounterExample | | | |-- ExampleNLPBanded | | | |-- thyra | | | |-- NLPThyraEpetraModelEval4DOpt | | | -- NLPThyraEpetraAdvDiffReactOpt | -- tools | -- moocho
Note that the directory
$TRILINOS_INSTALL_DIR/examples/moocho/thyra will not be installed if
--enable-export-makefiles is not included (or is disabled) or if
--enable-thyra is missing or
--disable-moocho-thyra is specified at configure time. Also, none of the examples will be installed if the examples are disabled using
Each installed example contains a simple makefile that is ready to build each of the examples and to demonstrate several important features of MOOCHO. Each makefile shows how to compile and link against the installed header files and libraries. These makefiles use the Trilinos export makefile system to make it easy to get all of the compiler and linker options and get the right libraries in the build process. The user is encouraged to copy these examples to their own directories and modify them to solve their NLPs.
Specific examples are explained below but we first go through the common features of these examples here for one of the
Thyra::ModelEvaluator examples.
One common feature of all of the installed examples is the makefile that is generated by the install process. For the
NLPWBCounterExample example (that is described in the section Examples of General Serial NLPs with Explicit Jacobian Entries) the makefile looks like:
## ## Example external makefile that shows how to compile and ## link against an installed version of MOOCHO (part of Trilinos) ## # Points to where Trilinos is installed TRILINOS_INSTALL_DIR = ../../.. # Include the makefile fragment that specifies the compile/link commands include $(TRILINOS_INSTALL_DIR)/include/Makefile.export.moocho.macros # Include the makefile fragement that defines the include paths and libraries include $(TRILINOS_INSTALL_DIR)/include/Makefile.export.moocho # # Get the compile and link flags # LOCAL_CXX = $(MOOCHO_CXX) LOCAL_CXXLD = $(MOOCHO_CXXLD) LOCAL_CXXFLAGS = $(MOOCHO_CXXFLAGS) _LOCAL_COMPILE_FLAGS = $(MOOCHO_CXXFLAGS) $(MOOCHO_DEFS) $(MOOCHO_CPPFLAGS) -I$(TRILINOS_INSTALL_DIR)/include _LOCAL_LINK_FLAGS = $(MOOCHO_LIBS) # For platforms where perl and GNUMake are used LOCAL_COMPILE_FLAGS = $(shell perl $(TRILINOS_INSTALL_DIR)/include/strip_dup_incl_paths.pl $(_LOCAL_COMPILE_FLAGS)) LOCAL_LINK_FLAGS = $(shell perl $(TRILINOS_INSTALL_DIR)/include/strip_dup_libs.pl $(_LOCAL_LINK_FLAGS)) # For platforms where perl and/or GNUMake are not available #LOCAL_COMPILE_FLAGS = $(_LOCAL_COMPILE_FLAGS) #LOCAL_LINK_FLAGS = $(_LOCAL_LINK_FLAGS) # # Define the compile and link targets that use the included macros # NLPWBCounterExample.exe : NLPWBCounterExampleMain.o NLPInterfacePack_NLPWBCounterExample.o $(LOCAL_CXXLD) $(LOCAL_CXXFLAGS) \ NLPWBCounterExampleMain.o NLPInterfacePack_NLPWBCounterExample.o \ -o NLPWBCounterExample.exe $(LOCAL_LINK_FLAGS) .cpp.o: $(LOCAL_CXX) $(LOCAL_COMPILE_FLAGS) -c $< -o $@ clean: rm -f *.o *.exe *~ # # Define some other helpful targets # # Print the help for this script generate-opt-file-help: $(TRILINOS_INSTALL_DIR)/tools/moocho/generate-opt-file.pl -h # Generate an options file Moocho.opt in the PWD with no comments generate-opt-file: $(TRILINOS_INSTALL_DIR)/tools/moocho/generate-opt-file.pl -s # Generate an options file Moocho.opt in the PWD with full comments generate-opt-file-verbose: $(TRILINOS_INSTALL_DIR)/tools/moocho/generate-opt-file.pl
By using the macros starting with
MOOCHO_ one is guaranteed that the same compiler with the same options that were used to build Trilinos are used to build the client's codes. Of particular importance are the macros
MOOCHO_CPPFLAGS, and
MOOCHO_CXXLD since these ensure that the same C++ compiler and the same
-D C/C++ preprocessor definitions are used. These are critical to compiling compatible code in many cases. The macro
MOOCHO_LIBS contain all of the libraries needed to link executables and they include all of the libraries in their lower-level dependent Trilinos packages. For example, you don't explicitly see the libraries for say Teuchos, but you can be sure that they are there.
This makefile gets created with the following lines commented in or out depending on if
--with-gnumake was specified or not when Trilinos was configured:
# For platforms where perl and GNUMake are used LOCAL_COMPILE_FLAGS = $(shell perl $(TRILINOS_INSTALL_DIR)/include/strip_dup_incl_paths.pl $(_LOCAL_COMPILE_FLAGS)) LOCAL_LINK_FLAGS = $(shell perl $(TRILINOS_INSTALL_DIR)/include/strip_dup_libs.pl $(_LOCAL_LINK_FLAGS)) # For platforms where perl and/or GNUMake are not available #LOCAL_COMPILE_FLAGS = $(_LOCAL_COMPILE_FLAGS) #LOCAL_LINK_FLAGS = $(_LOCAL_LINK_FLAGS)
In the above example, support for GNU Make is enabled which results in scripts being called to clean up the list of libraries and which may have duplicate entries otherwise.
A few different installed NLP examples are described below.
NLPInterfacePack::NLPWBCounterExample: Subclass for a small NLP with n=3 variables and m=2 equality constraints that implements the Waechter and Biegler counterexample [???] which shows global convergence failure from many starting points for many NLP solvers (including many current MOOCHO algorithms).
NLPWBCounterExampleMain.cpp: Main driver program for solving the NLP.
NLPInterfacePack::ExampleNLPBanded: Scalable NLP with
nD dependent variables,
nI independent variables,
mI general inequality constraints, and with a Jacobian with bandwidth of
bw. This NLP can also be configured to represent a square set of equations (i.e.
nI=0) and an unconstrained optimization problem (i.e.
ExampleNLPBandedMain.cpp: Main driver program for solving the NLP.
EpetraExt::ModelEvaluator that are used along with
Thyra::EpetraModelEvaluator and the stratimikos solvers accessed through
EpetraExt::ModelEvaluator interface
EpetraModelEval4DOpt: Subclass for a small serial model with n=4 variables and m=2 equality constraints. The purpose of this model is to show the most basic parts of a concrete implementation. This example is only serial however and does not address parallelization issues.
NLPThyraEpetraModelEval4DOptMain.cpp: Main driver program for solving the NLP.
GLpApp::AdvDiffReactOptModel: Implements an inversion problem based on a finite-element discretization of a 2D reaction/diffusion state equation. This example shows a more advanced model what includes parallelization in the state space.
NLPThyraEpetraAdvDiffReactOptMain.cpp: Main driver program for solving the NLP.
Note: The above examples will only be installed if the configure options
--enable-stratimikos, and
--enable-epetraext-thyra are all included.
NLPInterfacePack::NLPSerialPreprocessExplJac subclass object, one should directly use the "Facade" solver class
MoochoPack::MoochoSolver (see
NLPWBCounterExampleMain.cpp). However, when using an NLP based on a
Thyra::ModelEvaluator object, then the more specialized "Facade" solver class
MoochoPack::ThyraModelEvaluatorSolver should be used (see
NLPThyraEpetraModelEval4DOptMain.cpp). The class
MoochoPack::ThyraModelEvaluatorSolver just uses
MoochoPack::MoochoSolver internally for the main solve but provides a great deal of extra functionality to set initial guesses (also from an input file) and wrap the model evaluator object with various "Decorator" skins and to capture and return the final solution.
NLPThyraEpetraModelEval4DOptMain.cpp. This example shows the use of both MOOCHO options and Stratimikos linear solver options.
Here are the command-line arguments that the program
NLPThyraEpetraModelEval4DOptMain.cpp accepts:
Teuchos::GlobalMPISession::GlobalMPISession(): started serial run Echoing the command-line: c:\_mystuff\PROJECTS\Trilinos.release-7-0-branch\BUILDS\INTEL\SERIAL_DEBUG\packages\moocho\thyra\example\NLPThyraEpetraModelEval4DOpt\NLPThyraEpetraModelEval4DOpt.exe --echo-command-line --help Usage: c:\_mystuff\PROJECTS\Trilinos.release-7-0-branch\BUILDS\INTEL\SERIAL_DEBUG\packages\moocho\thyra\example\NLPThyraEpetraModelEval4DOpt\NLPThyraEpetraModelEval4DOpt.exe [options] options: --help Prints this help message --pause-for-debugging Pauses for user input to allow attaching a debugger --echo-command-line Echo the command-line but continue as normal --linear-solver-params-file string Name of an XML file containing parameters for linear solver options to be appended first. (default: --linear-solver-params-file="") --extra-linear-solver-params string An XML string containing linear solver parameters to be appended second. (default: --extra-linear-solver-params="") --linear-solver-params-used-file string Name of an XML file that can be written with the parameter list after it has been used on completion of this program. (default: --linear-solver-params-used-file="") --moocho-options-file string Set the name of the MOOCHO options file in the OptionsFromStream format. File is ignored if it does not exist! (default: --moocho-options-file="Moocho.opt") --moocho-extra-options string Extra MOOCHO options specified in the format "OptGrp1{name1=val1,...,namen=valn}:OptGr2{name1=val1,...,namen=valn}:..." (default: --moocho-extra-options="") --do-sim bool Flag for if only the square constraints are solved --do-opt (default: --do-opt) --use-direct bool Flag for if we use the NLPDirect or NLPFirstOrderInfo implementation. --use-first-order (default: --use-first-order) --x-guess-file string Base file name to read the guess of the state x from. (default: --x-guess-file="") --scale-x-guess double Amount to scale the guess for x read in by --x-guess-file. (default: --scale-x-guess=1) --p-guess-file string Base file name to read the guess of the parameters p from. (default: --p-guess-file="") --scale-p-guess double Amount to scale the guess for p read in by --p-guess-file. (default: --scale-p-guess=1) --x-solu-file string Base file name to write the state solution x to. (default: --x-solu-file="") --p-solu-file string Base file name to write the parameter solution p to. (default: --p-solu-file="") --xt0 double No documentation (default: --xt0=1) --xt1 double No documentation (default: --xt1=1) --pt0 double No documentation (default: --pt0=2) --pt1 double No documentation (default: --pt1=0) --d double No documentation (default: --d=10) --x00 double No documentation (default: --x00=1) --x01 double No documentation (default: --x01=1) --p00 double No documentation (default: --p00=2) --p01 double No documentation (default: --p01=0) --pL0 double No documentation (default: --pL0=-1e+050) --pL1 double No documentation (default: --pL1=-1e+050) --pU0 double No documentation (default: --pU0=1e+050) --pU1 double No documentation (default: --pU1=1e+050) --xL0 double No documentation (default: --xL0=-1e+050) --xL1 double No documentation (default: --xL1=-1e+050) --xU0 double No documentation (default: --xU0=1e+050) --xU1 double No documentation (default: --xU1=1e+050) --external-lowsf bool Determines if the Thyra::LinearOpWithSolveFactory is used externally or internally to the Thyra::EpetraModelEvaluator object --internal-lowsf (default: --internal-lowsf)
Below, the various types of input and output are described. Input parameters/options are separated into linear solver parameters for Stratimikos and algorithm options for MOOCHO.
Thyra::ModelEvaluator-based NLP, the linear solver options for inverting the basis of the equality constraints are read in through a
Teuchos::ParameterList object which is accepted through the Stratimikos class
Thyra::DefaultRealLinearSolverBuilder. When a
MoochoPack::ThyraModelEvaluatorSolver object is used to build a driver program, it can add options to the
Teuchos::CommandLineProcessor object through the function
Thyra::DefaultRealLinearSolverBuilder::setupCLP() (see
NLPThyraEpetraModelEval4DOptMain.cpp). This adds the command-line arguments
--linear-solver-params-file and
--extra-linear-solver-params which are used to read in parameters for the Stratimikos-wrapped linear solvers in XML format.
The linear solver parameters file is specified in XML and the list of all of the valid options can be found in the documentation for the class
Thyra::DefaultRealLinearSolverBuilder itself.
An example of a linear solver options input file that specifies the use of the Amesos solver
Amesos_Klu is shown below:
<ParameterList> <Parameter name="Linear Solver Type" type="string" value="Amesos"/> <ParameterList name="Linear Solver Types"> <ParameterList name="Amesos"> <ParameterList name="Amesos Settings"/> <Parameter name="Solver Type" type="string" value="Klu"/> </ParameterList> </ParameterList> <Parameter name="Preconditioner Type" type="string" value="None"/> </ParameterList>
The XML input for the linear solver parameters can be read from a file using the
--linear-solver-params-file argument and/or from the command-line itself using the
--extra-linear-solver-params argument. Note that any parameters specified by the
--extra-linear-solver-params argument will append and overwrite those read in from the file specified by the
--linear-solver-params-file argument. If the argument
--linear-solver-params-file is missing, then a set of internal options is looked for instead.
OptionsFromStreamPack::OptionsFromStream is used to read in MOOCHO options from a text string (or a file) and is used to represent an options data base that is used by MOOCHO. The function
MoochoPack::MoochoSolver::setup_commandline_processor() can be used to set the command-line arguments
--moocho-options-file and
--moocho-extra-options to read in MOOCHO options. The format of the options file and a listing, with documentation, of all of the valid MOOCHO options is shown here.
An example of an options file showing some of the common options that a user might want to set is shown below:
begin_options options_group NLPSolverClientInterface { max_iter = 20; max_run_time = 2.0; *** In minutes opt_tol = 1e-2; feas_tol = 1e-7; * journal_output_level = PRINT_NOTHING; * No output to journal from algorithm * journal_output_level = PRINT_BASIC_ALGORITHM_INFO; * O(1) information usually journal_output_level = PRINT_ALGORITHM_STEPS; * O(iter) output to journal [default] * journal_output_level = PRINT_ACTIVE_SET; * O(iter*nact) output to journal * journal_output_level = PRINT_VECTORS; * O(iter*n) output to journal (lots!) * journal_output_level = PRINT_ITERATION_QUANTITIES; * O(iter*n*m) output to journal (big lots!) * null_space_journal_output_level = DEFAULT; * Set to journal_output_level [default] * null_space_journal_output_level = PRINT_ACTIVE_SET; * O(iter*nact) output to journal * null_space_journal_output_level = PRINT_VECTORS; * O(iter*(n-m)) output to journal (lots!) null_space_journal_output_level = PRINT_ITERATION_QUANTITIES; * O(iter*(n-m)^2) output to journal (big lots!) journal_print_digits = 10; calc_conditioning = true; calc_matrix_norms = true; *** (costly?) calc_matrix_info_null_space_only = true; *** (costly?) } options_group DecompositionSystemStateStepBuilderStd { * null_space_matrix = AUTO; *** Let the solver decide [default] null_space_matrix = EXPLICIT; *** Compute and store D = -inv(C)*N explicitly * null_space_matrix = IMPLICIT; *** Perform operations implicitly with C, N (requires adjoints) * range_space_matrix = AUTO; *** Let the algorithm decide dynamically [default] * range_space_matrix = COORDINATE; *** Y = [ I; 0 ] (Cheaper computationally) range_space_matrix = ORTHOGONAL; *** Y = [ I; -N'*inv(C') ] (more stable) } options_group NLPAlgoConfigMamaJama { * quasi_newton = AUTO; *** Let solver decide dynamically [default] quasi_newton = BFGS; *** Dense BFGS * quasi_newton = LBFGS; *** Limited memory BFGS * line_search_method = AUTO; *** Let the solver decide dynamically [default] * line_search_method = NONE; *** Take full steps at every iteration * line_search_method = DIRECT; *** Use standard Armijo backtracking line_search_method = FILTER; *** [default] Use the Filter line search method } end_options
For more detailed documentation on what each of these options mean and more, see the full listing of the options here.
The command-line argument
--moocho-options-file is used to read in an set of MOOCHO options from a file using the format shown above. If the argument
--moocho-options-file is missing, then a file with the name "Moocho.opt" is looked for in the current directory. If this file is not found, then a warning is printed and a default set of options are used. The user is warned to check that their opinions file was actually read and that it will be ignored if it is not found!
The argument
--moocho-extra-options can be used to specify MOOCHO options directly on the command line in a slightly more terse format than the format of a MOOCHO options file. For example, the command-line equivalent to a subset of the options set in the above example MOOCHO options file is:
--moocho-extra-options="\ NLPSolverClientInterface{max_iter=20,max_run_time=2.0,opt_tol=1e-2,feas_tol=1e-7\ ,journal_output_level= PRINT_ALGORITHM_STEPS\ ,null_space_journal_output_level=PRINT_ITERATION_QUANTITIES\ ,journal_print_digits=10,calc_conditioning=true,calc_matrix_norms=true\ ,calc_matrix_info_null_space_only=true}\ :DecompositionSystemStateStepBuilderStd{\ null_space_matrix=EXPLICIT,range_space_matrix=ORTHOGONAL}\ :NLPAlgoConfigMamaJama{quasi_newton=BFGS,line_search_method=FILTER}"
The options specified in the
--moocho-extra-options argument will append and override those read in from a MOOCHO input file specified by the
--moocho-options-file argument.
MoochoAlgo.out, and
MoochoJournal.out. These four output streams provide different types of information about the MOOCHO algorithm.
To demonstrate the output files, here we show example output generated by the example program
NLPThyraEpetraModelEval4DOptMain.cpp. This example is used since it is fairly simple but can be used to generate more interesting output files. The output from running MOOCHO on a
Thyra::ModelEvaluator-based NLP looks very similar to running on one based on the more general NLP interface.
The example program
NLPThyraEpetraModelEval4DOpt.exe when run with the command-line arguments:
--echo-command-line --nD=3000 --bw=10 --diag-scal=1e+3 --nI=5 --xIl=1e-5 --xo=0.1
with the above sample
Moocho.opt options file, creates the output:
Each of these different types of output are described below and the major types of output that are included in each output stream are discussed. The purpose of this treatment is to familiarize the user with the contents of these outputs and to give hints of where to look for a certain types of information.
Before going into the details of each individual type of output, first a few general comments are in order. First, at the top of every output file (except for the console output) a header is included that briefly describes the general purpose of the output file. This header is followed by an echo of the options that where read into the
OptionsFromStreamPack::OptionsFromSteam object. These options include those set in the input file
Moocho.opt or by some other means (e.g.~in the executable or on the command line) as described above. The purpose of echoing the options in each file is to help record what setting were used to produce the output in the file. Of course the output is also influenced by other factors (e.g. other command-line options, properties of the specific NLP being solved etc.) and therefore these options do not determine the complete behavior of the software.
Console Output (output)
Console outputting is generated by a default
IterationPack::AlgorithmTracker subclass subclass object of type
MoochoPack::MoochoTrackerConsoleStd. This output is designed to approximately fit in an 80 character wide console. Here is the output that is generated for this example program:
Echoing the command-line: c:\_mystuff\PROJECTS\Trilinos.release-7-0-branch\BUILDS\INTEL\SERIAL_DEBUG\packages\moocho\example\ExampleNLPBanded\ExampleNLPBanded.exe --moocho-options-file=../example/Moocho.sample.opt --echo-command-line --nD=3000 --bw=10 --diag-scal=1e+3 --nI=5 --xIl=1e-5 --xo=0.1 test_nlp = true: Testing the NLP! ... Testing the supported NLPFirstOrder interface ... Successful end of testing of the nlp ******************************** *** Start of rSQP Iterations *** n = 3005, m = 3000, nz = 59910 k f ||c||s ||rGL||s QN #act ||Ypy||2 ||Zpz||2 ||d||inf alpha time(s) ---- --------- --------- --------- -- ---- -------- -------- -------- -------- --------- 0 15 1.2e+002 9.8 IN 0 1 1e+002 1e+001 0.06 5.627887 1 2.2 70 0.21 UP 0 1 0.06 0.3 1 8.152638 2 0.62 16 0.28 SK 0 0.4 0.06 0.07 1 10.56647 3 0.39 1.3 0.28 SK 0 0.04 0.05 0.02 1 12.9757 4 0.34 0.045 0.27 DU 0 0.001 0.2 0.1 1 15.39359 5 0.17 0.0062 0.2 UP 1 0.0002 0.6 0.3 1 17.8305 6 4.3e-009 0.0016 2.4e-005 UP 4 9e-005 4e-006 3e-006 1 20.28171 ---- --------- --------- --------- -- ---- 7 3.1e-010 7.9e-009 1.5e-005 UP 4 3e-010 2e-006 2e-006 - 22.72353 Total time = 22.724 sec Jackpot! You have found the solution!!!!!! Number of function evaluations: ------------------------------- f(x) : 18 c(x) : 18 Gf(x) : 9 Gc(x) : 9 Solution Found!
Above, one of the the first things printed is the size of the NLP where
n is the total number of variables,
m is the total number of equality constraints and
nz is the number of nonzeros in the Jacobian (
Gc). Note that for a simulation-constrained optimization problem that
nz will not give any useful information since this is not available through the Thyra interfaces.
Following the global dimensions of the problem, a table containing summary information for each rSQP iteration is printed in real time. Each column in this table has the following meaning:
k : The SQP iteration counter. This count starts from zero so the total number of SQP iterations is one plus the final
f : The value of the objective function (possibly scaled) at current estimate of the solution
||c||s : The scaled residual of the norm of the equality constraints at current estimate of the solution . The scaling is determined by the convergence check (see the step "CheckConvergence" in MoochoAlgo.out and MoochoJournal.out) and this value is actually equal to the iteration quantity
feas_kkt_err (see the file MoochoAlgo.out). This is the error that is compared to the tolerance
feas_tol in the convergence check (which is equal to the option
NLPSolverClientInterface{feas_tol}). The unscaled constraint norm can be viewed in the more detailed iteration summary table printed in the file Sample MOOCHO Algorithm Summary Output (MoochoSummary.out) "MoochoSummary.out".
||rGL||s : The scaled norm of the reduced gradient of the Lagrangian at current estimate of the solution . The scaling is determined by the convergence check (see the step "CheckConvergence" in MoochoAlgo.out and MoochoJournal.out) and this value is actually equal to the iteration quantity
opt_kkt_err (see the file MoochoAlgo.out). This is the error that is compared to the tolerance
opt_tol in the convergence check (which is equal to the option
NLPSolverClientInterface{opt_tol}). The unscaled norm can be viewed in the more detailed summary table printed in the file MoochoSummary.out.
QN : This field indicates whether a quasi-Newton update of the reduced Hessian was performed or not. The following are the possible values:
IN : Reinitialized (usually to identity )
DU : A dampened update was performed
UP : An undamped update was performed
SK : The update was skipped on purpose
IS : The update was skipped because it was indefinite
#act : Number of active constraints in the QP subproblem. This field only has meaning for an active-set algorithms. For interior-point algorithms, this will just equal the number of bounded variables and does not provide any useful information. For problems without any bounds or inequality constraints, this column is not shown.
||Ypy||2 : The norm of the quasi-normal contribution . This norm gives a sense of how large the feasibility steps are.
||Zpz||2 : The norm of the tangential contribution . This norm gives a sense of how large the optimality steps are.
||d||inf : The norm of the total step . This norm gives a sense of how large the full SQP steps are in .
alpha : The step length taken along . A step length of represents a major event in the algorithm such as a line search failure followed by the selection of a new basis or a QP failure followed by a reinitialization of the reduced Hessian. A small number for indicates that many backtracking line search iterations where required and is an indication that the computed search direction is of poor quality. A value of
alpha=1.0 usually indicates that the algorithm is taking full spaces and may be performing well.
time(s) : The total wall-clock time consumed by the algorithm to that point. By differencing the times between iterations, one can compute the amount of time taken for each iteration. See the more detailed timing output in the file Sample MOOCHO Algorithm Summary Output (MoochoSummary.out) "MoochoSummary.out".
After the iteration summary is printed, the total wall-clock time is given in
Total time. This is the wall-clock time that is consumed from the time that the
MoochoPack::MoochoTrackerConsoleStd object is first initialized up until the time that the final state of the algorithm is reported. Therefore, this wall-clock time may contain more than just the execution time of the algorithm proper. For more detailed built-in timings, see the table at the end of the file Sample MOOCHO Algorithm Summary Output (MoochoSummary.out) "MoochoSummary.out".
Following the total runtime, the total number of function and gradient evaluations is given for the objective and the constraints. Note that if finite difference testing is turned on, then many extra evaluations will be performed and this will inflate these counters.
Algorithm Configuration Output (MoochoAlgo.out)
In addition to output the console, MOOCHO will also write a file called MoochoAlgo.out by default that gives information about what MOOCHO algorithm is configured and what logic went into its configuration. This file is too long to be shown here. This file provides the road map for determining what iteration quantities are being used by the algorithm, what the algorithmic steps are, and what the logic of the algorithm is using a shorthand, Matlab-like, notation. This file is the first place to go when trying to figure out what a MOOCHO algorithm is doing and is critical to understand the MoochoJournal.out file.
Many of the options specified in the options file are shown in the printed algorithm. The user can therefore study the algorithm printout to see what effect some of the options have. For example, the option
NLPSolverClientInterface{opt_tol} is used in the Step "CheckConvergence" under the name
opt_tol in the files MoochoAlgo.out and MoochoJournal.out. Some of the options only determine the algorithm configuration, which affects what steps are included, how steps are set up and in what order they are included. These option names are not specifically shown in the algorithm printout per-say. For example, the option
NLPAlgo_ConfigMamaJama{max_dof_quasi_newton_dense} determines when the algorithm configuration will switch from using dense BFGS to using limited-memory BFGS but this identifier name
max_dof_quasi_newton_dense is not shown anywhere in the listing. However, the configuration object can print out a short log (to the
MoochoAlgo.out file) to show the user how these options impact the configuration of the algorithm.
Algorithm Summary and Timing Output (MoochoSummary.out)
The file MoochoSummary.out contains a more detailed summary table than what is sent to the console, a table of the timings for each algorithm step for each iteration, and some limited profiling-type output (produced by
Algorithm Journal Output (MoochoJournal.out)
The file MoochoJournal.out contains more detailed, iteration by iteration, step by step information on what the algorithm is doing. The steps shown in this output are the same that are shown in the pseudo algorithm description shown in the file MoochoAlgo.out described above. The amount of output produced in this file is mainly controlled by the option
NLPSolverClientInterface{journal_output_level} and the value of
PRINT_ALGORITHM_STEPS is usually the most appropriated in most cases and prints only output, where is the SQP iteration counter. The value of
ITERATION_QUANTITIES will produce obscene amounts of debugging output and will dump nearly every vector and every matrix used in the algorithm. There are many options in the Moocho.opt options file that control exactly what type of output is generated to meet different needs. Note that the option
NLPSolverClientInterface{null_space_journal_output_level} will override
NLPSolverClientInterface{journal_output_level} for quantities that lie in the null space. This is helpful for seeing the progress of the algorithm where there are few degrees of optimization freedom.
Ctrl-C will cause the algorithm to pause at the end of the current algorithm step and menu like the following will appear:
IterationPack::Algorithm::interrupt(): Received signal SIGINT. Wait for the end of the current step and respond to an interactive query, kill the process by sending another signal (i.e. SIGKILL). IterationPack::Algorithm: Received signal SIGINT. Just completed current step curr_step_name = "EvalNewPoint", curr_step_poss = 1 of steps [1...9]. Do you want to: (a) Abort the program immediately? (c) Continue with the algorithm? (s) Gracefully terminate the algorithm at the end of this step? (i) Gracefully terminate the algorithm at the end of this iteration? Answer a, c, s or i ?
To terminate the algorithm gracefully at the end of the current step, type '
s', which brings up the next question:
Terminate the algorithm with true (t) or false (f) ?
Answering false ('
f'), which is interpreted as failure, results in the algorithm exiting immediately with the partial solution being returned to the NLP object and everything being cleaned up correctly on exit. The full output from this type of interrupt looks something like:
******************************** *** Start of rSQP Iterations *** n = 1331, m = 1111, nz = 1478741 k f ||c||s ||rGL||s QN ||Ypy||2 ||Zpz||2 ||d||inf alpha time(s) ---- --------- --------- --------- -- -------- -------- -------- -------- --------- 0 2.1 0.11 0.095 IN 1e+001 7 5 1 1.152 1 4.3 0.00025 0.27 UP 0.1 2 0.1 1 2.294 2 4.1 8.5e-006 0.25 DU 0.007 3 0.3 1 3.405 IterationPack::Algorithm::interrupt(): Received signal SIGINT. Wait for the end of the current step and respond to an interactive query, kill the process by sending another signal (i.e. SIGKILL). IterationPack::Algorithm: Received signal SIGINT. Just completed current step curr_step_name = "EvalNewPoint", curr_step_poss = 1 of steps [1...9]. Do you want to: (a) Abort the program immediately? (c) Continue with the algorithm? (s) Gracefully terminate the algorithm at the end of this step? (i) Gracefully terminate the algorithm at the end of this iteration? Answer a, c, s or i ? s Terminate the algorithm with true (t) or false (f) ? f ---- --------- --------- --------- -- 3 3.4 - - - - - - - 7.762 Total time = 7.762 sec Oops! Not the solution. The user terminated the algorithm and said to return non-optimal! Number of function evaluations: ------------------------------- f(x) : 10 c(x) : 10 Gf(x) : 5 Gc(x) : 5 Some algorithmic error occurred!
A MOOCHO algorithm can also be interrupted without access to standard in or standard out (i.e. when running in batch mode) by setting up an interrupt file. When the interrupt file is found, the algorithm is terminated. MOOCHO must be told to look for an interrupt file by setting the option
IterationPack_Algorithm{interrupt_file_name="interrupt.in"} where any file name can be substituted for the name
"interrupt.in". At the end of each algorithm step, MOOCHO will look for the file
"interrupt.in", usually in its current working directory (or an absolute path can be specified as well). If it finds the file it will read it for termination instructions. For example, a interruption file that contains
i f
will result in the algorithm terminating at the end of the current iteration with the condition '
false', which means failure. The output generated from this type of interrupt looks something like:
******************************** *** Start of rSQP Iterations *** n = 1331, m = 1111, nz = 1478741 k f ||c||s ||rGL||s QN ||Ypy||2 ||Zpz||2 ||d||inf alpha time(s) ---- --------- --------- --------- -- -------- -------- -------- -------- --------- 0 2.1 0.11 0.095 IN 1e+001 7 5 1 1.161 1 4.3 0.00025 0.27 UP 0.1 2 0.1 1 2.293 2 4.1 8.5e-006 0.25 DU 0.007 3 0.3 1 3.455 IterationPack::Algorithm: Found the interrupt file "interrupt.in"! Just completed current step curr_step_name = "EvalNewPoint", curr_step_poss = 1 of steps [1...9]. Read a value of abort_mode = 'i': Will abort the program gracefully at the end of this iteration! Read a value of terminate_bool = 'f': Will return a failure flag! 3 3.4 1.6e-005 0.23 DU 0.006 7 2 1 4.616 ---- --------- --------- --------- -- 3 3.4 1.6e-005 0.23 DU 0.006 7 2 1 4.626 Total time = 4.626 sec Oops! Not the solution. The user terminated the algorithm and said to return non-optimal! Number of function evaluations: ------------------------------- f(x) : 11 c(x) : 11 Gf(x) : 5 Gc(x) : 5 Some algorithmic error occurred!
Currently when an algorithm is interrupted and terminated, only the current status of the solution variables are returned to the NLP (i.e. through the
Thyra::ModelEvaluator::reportFinalPoint() callback function) and no internal check-pointing is performed. Therefore, a user should not expect to be able to restart an interrupted algorithm and have it behave the same as if it was never interrupted. MOOCHO currently does not support general check-pointing and restarting but this is a feature that is on the wish list for MOOCHO for an upcoming release.
This brings the MOOCHO quickstart to a conclusion. The remaining sections provide more detailed information on topics mentioned in the above quickstart.
NLPInterfacePack::NLPFirstOrder, and
NLPInterfacePack::NLPVarReductPerm interfaces and must supply an object that supports the
AbstractLinAlgPack::BasisSystem and
AbstractLinAlgPack::BasisSystemPerm interfaces. The details of these interfaces are really not the concern of a general user who just wants to solve an NLP. Therefore, here we will only discuss some of the basic issues associated with these interfaces and what adapter-support subclasses are available to help implement the needed functionality.
As described above in the quickstart, there are two well supported tracts to developing concrete NLP subclasses to be used with MOOCHO. Each of these tracts provides support software that allow the user to provide only the most basic types of information needed to define the NLP. The first type of NLPs that are supported are general NLPs with explicit derivative components and these NLPs can only be solved in serial. This first type requires a direct linear solver that can be used to select a basis matrix. The second type are simulation-constrained NLPs that can be solved on massively parallel computers by utilizing preconditioned iterative linear solvers. This type of NLP is supported through the
Thyra::ModelEvaluator interface and can utilize much of the linear solver capability in Trilinos. The key difference in this second type of NLP is that the application must know a priori what the selection of state (or dependent) variables is in order to obtain a square and well conditioned basis matrix.
These two approaches to defining NLPs are described in the next two sections Representing General Serial NLPs with Explicit Jacobian Entries and Representing Simulation-Constrained Parallel NLPs through Thyra.
DEGETRF(...)) and the Harwell Subroutine Library (HSL) routine MA28. The MA28 routine is the only viable option currently supported for handling large sparse linear systems. In the past, other direct solvers have been experimented with and an ambitious user can provide support for any direct solver they would like (with the ability to find a square basis) by providing an implementation of the
AbstractLinAlgPack::DirectSparseSolver interface. If your NLP can also provide explicit objective function gradients, then your concrete subclass should derive from the
NLPInterfacePack::NLPSerialPreprocessExplJac subclass. More details are given below.
The first utility base subclass for general serial (i.e. runs in a single process or perhaps on an SMP) NLPs is
NLPInterfacePack::NLPSerialPreprocess. This utility class derives from the
NLPInterfacePack::NLPObjGrad, and
NLPInterfacePack::NLPVarReductPerm interfaces and takes care of a lot of details like preprocessing out fixed variables, converting general inequality constraints to equalities by the addition of slack variables and maintaining the current basis permutations. All of this is done to transform the "original" NLP into standard form. The "original" NLP can include general inequality constraints in addition to general equality constraints. The "original" NLP, however, can also includes fixed variables (i.e. ). There are several different intermediate forms of the NLP that a
NLPSerialPreprocess object maintains in the transformation from the ``original'' NLP to the final form. The first type of transformation is the addition of slack variables to convert the general inequality constraints into an extra set of equality constraints. This is called the "full" form of the NLP. The second type transformation is the removal of fixed variables which are preprocessed out of the problem but leaving the general inequalities intact which some parts of a MOOCHO algorithm may access (e.g. globalization steps) through the
NLP interface. The last type of transformation is the permutation of the variables and the constraints according to the current basis selection. All of this functionality is very useful and this makes the
NLPSerialPreprocess subclass the place to start when going to implement any type of serial NLP to be used with an rSQP algorithm. Note that this subclass does not address the structure or handling of the Jacobian or Hessian matrices in any way. The handling of these matrices is deferred to subclasses to define.
While it may seem that the details of the transformations performed by
NLPInterfacePack::NLPSerialPreprocess are of no concern to end users, this is not always the case. For example, a user must understand how their original NLP is transformed in order to understand the output printed in the MoochoJournal.out file when the journal output level
NLPSolverClientInterface{journal_print_level} is set to a value equal to or higher than
Subclasses that wish to use a generic sparse data structure for the Jacobian matrix and a generic sparse direct linear solver to select, factor and solve linear systems with the basis matrix should derive from the
NLPInterfacePack::NLPSerialPreprocessExplJac subclass (which itself derives from
NLPSerialPreprocess). This subclass performs all of the same types of transformations as its
NLPSerialPreprocess base class (i.e. removal of entries for fixed variables, addition of slack variables and basis permutations) with the explicit Jacobian entries that are supplied by the concrete NLP subclass. The concrete implementations of both the Jacobian matrix subclass for
Gc and the
BasisSystem subclass can be overridden by the client but yet have good default implementations. The default implementation for the matrix class for
Gc is
AbstractLinAlgPack::MatrixSparseCOORSerial (which uses a coordinate sparse matrix format). The implementation of the
AbstractLinAlgPack::BasisSystem object is handled through a subclass of
AbstractLinAlgPack::BasisSystemFactory called
AbstractLinAlgPack::BasisSystemFactoryStd subclass can create
AbstractLinAlgPack::BasisSystem objects implemented through several different direct linear solvers. Currently, only the solvers
LAPACK (for small, dense Jacobians)and MA28 (for large, sparse systems) are currently supported (see the options group
BasisSystemFactoryStd to select what solver to use manually). Note that MOOCHO must be configured with
--enable-moocho-ma28 to support the MA28 solver.
Warning! This NLP adapter-support software is going to most likely change in a major way before the next major release of Trilinos. Therefore, it is recommended that, if possible, users derive their NLPs from the Thyra-based simulation-constrained interfaces described in the next section Representing Simulation-Constrained Parallel NLPs through Thyra. However, this set of software is the only currently supported way to solve certain types of general NLPs and therefore remains for the time being.
See examples above in the section Examples of General Serial NLPs with Explicit Jacobian Entries.
Thyra::ModelEvaluator interface and this provides access to a significant linear solver capability through Trilinos. These types of NLPs can also be solved in single program multiple data (SPMD) mode in parallel on a massively parallel computer.
Thyra::ModelEvaluator interface uses a different notation than the standard MOOCHO NLP notation. The model evaluator notation is:
where are the state variables, are the optimization parameters, are the discrete nonlinear state simulation equations, and is the scalar-valued objective function. Here the state Jacobian must be square and nonsingular. The partitioning of variables into state variables and optimization variables must be known a priori and this partitioning can not change during an optimization solve.
Comparing the MOOCHO notation for optimization problems using variable decomposition methods which is
we can see the mapping between the MOOCHO notation and the
Thyra::ModelEvaluator notation as summarized in the following table:
|MOOCHO Notation
Thyra::ModelEvaluator Notation
Thyra::ModelEvaluator Description
|Number of state variables
|Number of optimization parameters
|Total number of optimization variables
|State variables
|Optimization parameters
|State equation residual function
|Objective function
|Nonsingular state Jacobian
|Optimization Jacobian
|Derivative of objective with respect to state variables
|Derivative of objective with respect to optimization parameters
It is unfortunate that the notation used with the Model Evaluator interfaces and software are different than those used by MOOCHO. The reason for this change in notation is that the Model Evaluator had to first appeal to the forward solve community where is the standard notation for the parameterized state equation and changing the notation of all of MOOCHO after the fact to match this would be very tedious to perform. We can only hope that the user can keep the above mapping of notation straight between MOOCHO and the Model Evaluator.
Currently, and more so in the near future, a great deal of capability will be automatically available when a user provides an implementation of the
EpetraExt::ModelEvaluator interface (as shown in the section Examples of Simulation-Constrained NLPs using Thyra). For these types of NLPs, a great deal of linear solver capability is available through the linear solver and preconditioners wrappers in the Stratimikos package. In addition, the application will also have access to many other nonlinear algorithms provided in Trilinos (see the Trilinos packages NOX, LOCA, and Rythmos).
See examples above in the section Examples of Simulation-Constrained NLPs using Thyra.
Teuchos::RefCountPtr and
Teuchos::BLAS that MOOCHO software is dependent on.
MOOCHO also optionally directly depends on the following Trilinos packages:
Thyra::ModelEvaluator for simulation-constrained optimization that MOOCHO can use to define NLPs. See the option
--enable-moocho-thyra described in the section Configuration of the MOOCHO Package.
EpetraExt::ModelEvaluator and contains some concrete examples that are used by MOOCHO.
configure script (which should be called from the base Trilinos-level configure script) responds to a number of options that affect the code that is built and what code is installed.
Some of the more important configuration options are:
--enable-moocho: Causes the MOOCHO package and all of its dependent packages to be enabled and built. Without this option, there will be no MOOCHO header files or libraries included in the installation of Trilinos (i.e. using
make install).
--enable-moocho-ma28: Causes the MOOCHO package to compile in support for the sparse solver HSL MA28. Currently, this is the only supported direct solver for large sparse systems where the basis matrix is not know up front.
--enable-moocho-thyra: Causes the MOOCHO package to compile in support for
Thyra::ModelEvaluator to support massively parallel simulation-constrained optimization. Note that this option will be turned on by default if
--enable-moocho and
--enable-thyra are both included.
--enable-moocho-stratimikos: Causes the examples in the MOOCHO package to compile in support for the linear solver wrappers through the Stratimikos package. None of the software in the MOOCHO library has any dependence on Stratimikos but none of the examples that Thyra depend on it will be compiled or installed if this option is not included. Note that this option will be turned on by default if
--enable-moocho and
--enable-stratimikos are both included. This option is only meaningful if Thyra support is enabled.
--enable-export-makefiles: Causes the installation of the MOOCHO package (an other Trilinos packages) to have the makefile fragments
Makefile.export.moocho and
Makefile.export.moocho.macros installed in the installation directory
$TRILINOS_INSTALL_DIR/include for use by external makefiles (see the section Examples of General Serial NLPs with Explicit Jacobian Entries). This option also causes the examples described in the section Examples of Simulation-Constrained NLPs using Thyra to be installed.
See the output from
Trilinos/pacakges/moocho/configure --help for a complete listing of all of the configure options for which MOOCHO responds.
The MOOCHO package is also affected by configure options passed to other packages. Here are some of of these options:
--enable-teuchos-debug: Causes a great deal of error checking code to be added to MOOCHO software.
--enable-thyra: Enables all Thyra-based software by default and enables the MOOCHO/Thyra adapters by default.
--enable-epetraext-thyra: Causes the examples that depend on
EpetraExt::ModelEvaluator described in the section Examples of Simulation-Constrained NLPs using Thyra to be compiled and installed. Note that this is enabled by default if
--enable-thyra and
--enable-epetraext are both included.
--enable-stratimikos: Enables support for Stratimikos. Note that this automatically enables
--enable-moocho-stratimikos by default.
--enable-amesos: Enables support for the Amesos linear solvers that can be access through Stratimikos.
--enable-aztecoo: Enables support for the AztecOO linear solvers that can be access through Stratimikos.
--enable-belos: Enables support for the Belos linear solvers that can be access through Stratimikos.
--enable-ifpack: Enables support for the Ifpack preconditioners that can be access through Stratimikos.
--enable-ml: Enables support for the ML preconditioners that can be access through Stratimikos.
Note that the above options will not be listed by
Trilinos/packages/moocho/configure --help but instead are listed by
Trilinos/configure --help=recursive.
Teuchos such as
Teuchos::RefCountPtr and
Teuchos::CommandLineProcessor were once in this collection.
RTOp package was developed from refactored code that once lived in this collection.
Teuchos::SerialDenseVector and
Teuchos::SerialDenseMatrix. This class library is used exclusively by MOOCHO to deal with serial dense linear algebra.
AbstractLinAlgPack for representing nonlinear programs (NLPs) (i.e. optimization problems). These interfaces serve a similar role as the
Thyra::ModelEvaluator interface but there are many differences. In the future, it is likely that these interfaces will be refactored to look more like the
Thyra::ModelEvaluator interface but are likely to remain distinct.
AbstractLinAlgPack. Included here are interfaces and adapters for QP solvers (with
QPSchur being included by default), line search interfaces and implementations, range/null space decompositions and other such capabilities.
IterationPack framework. This is where the real algorithmic meat of nonlinear programing is found in MOOCHO. This collection provides the "Facade" class
Thyra::ModelEvaluator objects. Also included is the higher-level "Facade" class
Thyra::ModelEvaluator interface (called
EpetraExt::ModelEvaluator). This software allows an appropriately defined Epetra-based model to be used to define a Thyra-based model to be used to define an optimization problem that MOOCHO can then solve.
Epetra_RowMatrix object.


text:
HARRISBURG, Pa.—The winning numbers in Thursday evening's drawing of the Pennsylvania Lottery's "Match 6 Lotto" game were:
(four, eight, ten, twenty-four, thirty-eight, forty-nine)
Estimated jackpot: $3.8 million
Motorcyclist brags to cops he hit 185 mph in chase
CONCORD, N.H. (AP) — New Hampshire police say a motorcyclist clocked at 127 mph bragged after being arrested that he had reached 185 mph during the chase. Full Story
Made in America music festival rocks Los Angeles
LOS ANGELES (AP) — Downtown Los Angeles' inaugural outdoor music festival got underway Saturday despite concerns from residents about possible security and traffic issues. Full Story
(Photo by Alex Wong/Getty Images)
President Obama's tan suit becomes Internet sensation
Obama discusses Syria, Iraq and Ukraine, wearing a suit no one expected.


text:
User Stories
"The real estate investment industry is driven by highly specialized knowledge. It is difficult to find people with both industry-specific knowledge and software development skills or to coordinate these skills between people on a project. MATLAB solves this problem by providing an environment that enables our industry specialists to develop software themselves."
Simon Durkin, IPD
Sophisticated real estate investors are constantly striving to balance the risk return profiles of complex investment portfolios that often contain both indirect and direct real estate. Established in 1985, Investment Property Databank (IPD) is the global standard for the provision of performance measurement and benchmarking services to the real estate investment industry.
While IPD principally focuses on analyzing current and past performance, the company has started an initiative to leverage the expertise of its specialist and comprehensive property databases to project future performance and risk measures for its clients. In its effort to achieve this, IPD has used MathWorks tools to develop and deploy cash-flow models of real estate investment portfolios.
"Our core business is providing clients with metrics that help them understand the key drivers of portfolio performance," says Peter McAnena, software development manager at IPD. "Using MATLAB, we have developed and deployed a tool that projects current information into the future to predict the values of those same metrics. Fund managers use this information to help them formulate and implement their investment strategies."
One of the main objectives when developing the simulation model was to create a solution that financial analysts in the research department could maintain—freeing up IT resources to work on other projects.
After initial attempts to develop a model in Microsoft® Excel® failed, the team sought a more complete development environment.
"We needed a sophisticated model, and Excel was nowhere near powerful enough to handle our data volumes—hundreds of simulations involving thousands of complex lease structures and their associated probability distributions," says Simon Durkin, director of service design at IPD.
In addition, IPD needed an efficient and cost-effective way to distribute the cash-flow model to its clients.
To develop algorithms and the cash-flow model, run Monte Carlo simulations, and optimize various investment metrics, IPD used MATLAB® and Optimization Toolbox™. To enable rapid deployment, the team used MATLAB Builder™ NE for Microsoft® .NET framework to translate the model into a Common Object Model (COM) object that IPD clients access using an Excel spreadsheet.
With no prior experience using MATLAB, the team worked with MathWorks Consulting to develop a basic simulation model.
Working from this early prototype, McAnena and his colleagues created a full-featured version of the model in MATLAB. Based on a wide range of inputs such as the location and value of properties and current tenants and their parent companies, the model produces a set of measures, including total return, risk, yield, and growth, projected into the future.
Using Optimization Toolbox, the team developed optimization algorithms that enable analysts to find the precise value of a specific measure to minimize or maximize the value of a second measure. The team also used Optimization Toolbox to calculate equivalent yield—defined as the ratio of income to the capital value of an investment—by solving a series of exponential ratios that sum to a particular value.
To exchange data between Microsoft Excel and MATLAB during early model development, the team used Spreadsheet Link™ EX. Using Excel as the main user interface, the team would execute Excel macros to pass large blocks of data to MATLAB with Spreadsheet Link EX. MATLAB completed the simulations and the results were returned to Excel, again using Spreadsheet Link EX.
Once the model had been debugged and tested using MATLAB, IPD used MATLAB Builder NE to generate a COM object from the model. IPD clients can access the COM object through an Excel spreadsheet—without installing MATLAB.
MathWorks consultants provided support at this stage as well. "We were under a tight deadline, and the consultants enabled us to start our project quickly. With their support, we applied MATLAB Builder NE to solve our problem immediately," says McAnena.
In the next phase of development, IPD plans to replace the Excel interface with a Web interface, using MATLAB Builder NE to create a COM object or .NET assembly that will serve as the computational core of the system.
To create cash-flow models of real estate investment portfolios and project returns using Monte Carlo simulations
Use MATLAB and MATLAB Builder NE to develop optimization algorithms, build financial models, and deploy solutions


text:
- Mobile site
- E-Newsletters
- News feed
- Find us on Twitter
Basingstoke Gazette on Twitter
- Find us on Facebook
Basingstoke Gazette on Facebook
Cute Kids competition about to begin (From Basingstoke Gazette)
When news happens, text BAZ and your photos or videos to 80360. Or contact us by email and phone.
Cute Kids competition about to begin
6:00am Friday 31st January 2014 in News By Jessica Bave, Reporter
BABIES, toddlers and youngsters from in and around Basingstoke will be lining up to have their pictures taken over the next few weeks – and one of them will be crowned the Cute Kids 2014 winner.
Gazette Newspapers, The Malls, JJ's, Tesco Chineham and Fraser Portraits have teamed up to stage this year's popular Cute Kids competition – and there will be more venues, and time, than ever before to get in the picture.
As in previous years, there will be three categories – 0 to nine months, 10 to 18 months and 19 to 36 months.
Photographs will be taken:
In The Malls (next to The Works), Basingstoke, from February 1-February 7, from 10am-4pm
In JJ's, in Morse Road, on February 8 and 9, from 10am-4pm
In Tesco, Chineham from February 13-15, from 10am-4pm
Entry to the competition is by original voucher only. One is printed in this week's Gazette, and others will be printed in upcoming editions.
Parents or adult relatives or carers who accompany youngsters to the photo sessions must take a voucher along to have one child's sitting done free of charge.
The photos will then be available to view, and orders can be placed to purchase, when Fraser Portraits return to put the pictures on display in The Malls from February 12-14, JJ's on February 13 and 14, and Tesco in Chineham from February 19-20.
Parents or carers can also choose which individual photo appears in our Cute Kids 2014 picture special.
This year, the Cute Kids special will appear in The Gazette of March 13 – and then readers will have the chance to vote for their favourites.
The readers' votes will determine the shortlist of finalists, and the winners and runners-up in each category will then be chosen by a panel of judges.
There will also be an overall winner – so all of this year's contestants will be bidding to follow in the footsteps of last year's overall champ Amelia Gardner.
Comments are closed on this article.